{"id":38442,"date":"2009-05-18T11:43:13","date_gmt":"2009-05-18T11:43:13","guid":{"rendered":"https:\/\/www.vmengine.net\/2009\/05\/18\/computacion-en-la-nube-escalabilidad-verdadera-o-falsa\/"},"modified":"2025-05-23T17:07:05","modified_gmt":"2025-05-23T17:07:05","slug":"computacion-en-la-nube-escalabilidad-verdadera-o-falsa","status":"publish","type":"post","link":"http:\/\/temp_new.vmenginelab.com\/es\/2009\/05\/18\/computacion-en-la-nube-escalabilidad-verdadera-o-falsa\/","title":{"rendered":"Computaci\u00f3n en la nube: escalabilidad: verdadera o falsa"},"content":{"rendered":"<p><!--:it-->A pesar del borrador de la definici\u00f3n de <a href=\"http:\/\/blog.vmengine.net\/2009\/05\/08\/nist-cloud-computing-draft-definition\/\">NIST, National Institute of Standards and Technology,<\/a> seguimos hablando de Cloud Computing como si fuera la tecnolog\u00eda capaz de hacer de todo.<\/p>\n<p>Una de estas caracter\u00edsticas muy mencionadas es la supuesta escalabilidad innata de la tecnolog\u00eda, as\u00ed que comencemos primero con una comprensi\u00f3n adecuada de la escalabilidad:<\/p>\n<p>Podemos definirlo como la capacidad de crecimiento de un sistema en funci\u00f3n del n\u00famero de peticiones externas al propio sistema. Generalmente significa crecimiento horizontal, es decir, en \u00abhardware b\u00e1sico\u00bb, que se resume en la adici\u00f3n de servidores baratos para aumentar la potencia del sistema y equilibrar naturalmente su carga. En realidad, parece encajar con el Cloud Computing, que por definici\u00f3n ser\u00eda una infraestructura simplemente escalable, basada en \u00abhardware b\u00e1sico\u00bb y capaz de entregar energ\u00eda bajo demanda al usuario final. Muchos de los arquitectos de soluciones recordar\u00e1n muy bien las complejidades a las que se enfrentan para poder escalar las aplicaciones de los clientes, y tambi\u00e9n consideramos que la mayor\u00eda de los portales y redes sociales m\u00e1s grandes han desarrollado su propia l\u00f3gica para escalar, l\u00f3gicas nacidas del tipo de aplicaci\u00f3n.<\/p>\n<p>Cuando en el a\u00f1o 2007 nos topamos con los servicios de <a href=\"http:\/\/blog.vmengine.net\/2007\/10\/21\/iscrizione-ad-aws-amazon-web-services\/\">Amazon AWS<\/a>, fue mientras le\u00edamos el sitio por excelencia dedicado a la escalabilidad <a href=\"http:\/\/highscalability.com\/\">highscalability.com<\/a> donde se public\u00f3 un art\u00edculo que hipotetizaba el uso de los servicios web de Amazon para el desarrollo de las redes sociales, entonces a\u00fan no se hab\u00eda acu\u00f1ado el t\u00e9rmino Cloud Computing. Como ahora se sabe, el Cloud Computing se basa en la virtualizaci\u00f3n de servidores, almacenamiento y servicios de red, por lo que hasta no hace mucho tiempo los m\u00e1s expertos juzgaban mal el uso de la virtualizaci\u00f3n ya que las m\u00e1quinas virtuales individuales no pod\u00edan tener el mismo rendimiento que una configuraci\u00f3n igual sin una capa de hipervisor, incluso hoy en d\u00eda se pueden encontrar arquitectos contrarios. No es err\u00f3neo como objeci\u00f3n, pero el razonamiento que lleva a preferir la Nube al enfoque gen\u00e9rico es el enorme ahorro econ\u00f3mico y la simplicidad y rapidez de adquisici\u00f3n de recursos, en comparaci\u00f3n con la implementaci\u00f3n de nuevo hardware que tambi\u00e9n involucra personal calificado para las configuraciones. Si luego pensamos que Amazon, el e-commerce m\u00e1s grande del mundo, trabaja con una infraestructura igual a los servicios de AWS que brinda a los clientes, tambi\u00e9n nos hace reflexionar sobre el rendimiento de una correcta implementaci\u00f3n en la Nube. Amazon ha madurado con el tiempo y ha desarrollado internamente cu\u00e1les son las l\u00f3gicas el\u00e1sticas de la Cloud que vende a los clientes de AWS, como se puede ver en este v\u00eddeo donde Jeff Bezos, fundador de Amazon.com describe Amazon Web Services que es un producto nacido de los laboratorios de Amazon para gestionar su infraestructura:<br \/>\n<object width=\"520\" height=\"276\" classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http:\/\/download.macromedia.com\/pub\/shockwave\/cabs\/flash\/swflash.cab#version=6,0,40,0\"><param name=\"data\" value=\"http:\/\/www.omnisio.com\/bin\/Embed.swf?embedID=c5XOCoqEyr3Q6wadbiFy2w\"><param name=\"quality\" value=\"Alto\"><param name=\"allowscriptaccess\" value=\"siempre\"><param name=\"allowfullscreen\" value=\"Verdadero\"><param name=\"src\" value=\"http:\/\/www.omnisio.com\/bin\/Embed.swf?embedID=c5XOCoqEyr3Q6wadbiFy2w\"><\/object><\/p>\n<p>Como es bien sabido, el Cloud Computing puede proporcionar servicios de tres maneras:<\/p>\n<ol>\n<li>SaaS<\/li>\n<li>Paas<\/li>\n<li>IaaS<\/li>\n<\/ol>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-full wp-image-203\" title=\"modelo piramidal\" src=\"http:\/\/temp_new.vmenginelab.com\/wp-content\/uploads\/2009\/05\/piramidmodel1-1.jpg\" alt=\"modelo piramidal\" width=\"359\" height=\"195\"><\/p>\n<p>En el primer caso, SaaS (Software as a Service), hay una aplicaci\u00f3n ya desarrollada y, por lo tanto, ya dise\u00f1ada para escalar en la infraestructura subyacente. En este caso, no es seguro que haya una nube debajo; este es el caso, por ejemplo, de <a href=\"http:\/\/mail.google.com\/mail\/\">Gmail<\/a>, <a href=\"http:\/\/docs.google.com\">Google Documents<\/a>, <a href=\"http:\/\/www.salesforce.com\/\">SalesForce<\/a>.<\/p>\n<p>En el segundo caso PaaS (Platform as a service) existe una plataforma capaz de alojar aplicaciones hechas por otros, pero estas aplicaciones deben cumplir con los estrictos requisitos; Este es el caso, por ejemplo, de <a href=\"http:\/\/code.google.com\/intl\/it-IT\/appengine\/\">Google App Engine<\/a> , que le permite publicar aplicaciones en Java y no preocuparse si el tr\u00e1fico de estas aplicaciones crece dr\u00e1sticamente. De nuevo, no siempre es cierto que el sustrato sea una nube.<\/p>\n<p>El \u00faltimo es el IaaS (Infrastructure as a services), que representa una serie de interfaces de software (APIs, webservices) que pueden ser utilizadas a trav\u00e9s de la autenticaci\u00f3n, con las que es posible programar los recursos computacionales que necesitamos para ejecutar nuestra aplicaci\u00f3n. Por lo tanto, esta capa no es escalable de forma natural, sino que deber\u00edamos ser capaces de programarla para escalar nuestra aplicaci\u00f3n; el ejemplo m\u00e1s claro y conocido de IaaS es AWS (Amazon WebServices).<\/p>\n<h3>Soluciones<\/h3>\n<p>Muchas empresas est\u00e1n emergiendo y tratando de establecerse en el mercado de la escalabilidad en la nube. Todas estas realidades son software desarrollado en la capa m\u00e1s baja, software capaz m\u00e1s o menos de responder a eventos de sobrecarga equilibrando la carga sobre los nuevos recursos solicitados desde el sistema de forma autom\u00e1tica. La mayor\u00eda de estos softwares se posicionan entre PaaS e IaaS porque deben permitir un m\u00ednimo de programabilidad \/ configuraci\u00f3n al usuario que, por lo tanto, no puede estar familiarizado con el tema; uno de los casos m\u00e1s representativos es <a href=\"http:\/\/www.rightscale.com\/\">el de RightScale<\/a>, que, sin embargo, adem\u00e1s de complejo tambi\u00e9n es caro.<\/p>\n<p>RightScale crea una capa m\u00e1s sencilla que la programaci\u00f3n bruta de comandos de la API de AWS, a trav\u00e9s de diversos casos ya desarrollados se puede guiar en la creaci\u00f3n de nuestra infraestructura virtual en la Nube, escalable seg\u00fan la l\u00f3gica que vamos a definir.<\/p>\n<p>Hoy es la versi\u00f3n beta de la (tan esperada por nosotros, como se hab\u00eda anticipado) soluci\u00f3n de <a href=\"http:\/\/aws.amazon.com\/about-aws\/whats-new\/2009\/05\/17\/monitoring-auto-scaling-elastic-load-balancing\/\">escalabilidad de AWS<\/a>. Amazon est\u00e1 lanzando los siguientes servicios web en versi\u00f3n beta hoy:<\/p>\n<ul>\n<li>CloudWatch<\/li>\n<li>ElasticLoadBalacing<\/li>\n<li>Escalado autom\u00e1tico<\/li>\n<\/ul>\n<p>Estos tres servicios que, como es bien sabido, se utilizan a trav\u00e9s de scripting, permiten monitorizar AMIs (amazon machine images), programar un balanceador de carga para nuestra aplicaci\u00f3n y definir grupos y triggers para intervenir autom\u00e1ticamente nuevos recursos que soporten las demandas de rendimiento de nuestra aplicaci\u00f3n.<\/p>\n<p>La oferta parece excelente, solo el CloudWatch parece excesivo en costo, monitorear 10 AMIs costar\u00eda m\u00e1s que el costo de una AMI en la que podemos instalar un sistema de monitoreo que pueda monitorear muchas m\u00e1s.<\/p>\n<p>Volviendo al problema de la escalabilidad, por lo tanto, existen soluciones en la nube para garantizarnos un desarrollo sin preocupaciones, pero solo los buenos arquitectos pueden plantear las excepciones adecuadas, \u00bfc\u00f3mo escalamos una base de datos?<\/p>\n<h3>Escalabilidad de la base de datos<\/h3>\n<p>Y es aqu\u00ed donde podemos decir que el Cloud Computing no permite naturalmente escalar, sino que es necesario adoptar una compleja serie de medidas que deben ser evaluadas caso por caso. A estas alturas ya es sabido por los m\u00e1s expertos que escalar una base de datos relacional de una red social, es decir, con un balance R\/W de alrededor del 50%, no es f\u00e1cil e implica toda una serie de enfoques para distribuir las solicitudes dividiendo la base de datos en muchas partes (sharding), cambios en la aplicaci\u00f3n e inserciones de inMemoryDatabase (por ejemplo, memcached) para preservar la memoria de la posici\u00f3n de las piezas.<\/p>\n<p>Los m\u00e1s astutos podr\u00edan decir que podr\u00edamos pasarnos a las soluciones modernas de inMemoryDataGrid, es decir, una especie de nube de recursos RAM sobre la que esparcimos nuestra base de datos. Bueno, ciertamente el rendimiento ser\u00eda muy recompensado, pero el costo de un recurso RAM en comparaci\u00f3n con el recurso HD es mayor en el mismo orden de magnitud que el de RAM Vs HD de mayor rendimiento, adem\u00e1s de ser antiecon\u00f3mico tambi\u00e9n es sobreabundante ya que no todos los datos de nuestra aplicaci\u00f3n es necesario mantenerlos en l\u00ednea todo el tiempo,  porque tal vez no lo haya solicitado nadie.<\/p>\n<p>Otra tendencia muy comercial, pero poco funcional es la Nube privada capaz de escalar a la Nube P\u00fablica (Nube H\u00edbrida). En primer lugar, a\u00fan no tenemos un est\u00e1ndar, por lo que se debe desarrollar ad hoc para cada cliente, de acuerdo con el problema anterior, si nuestra necesidad es la escalabilidad de la base de datos, \u00bfc\u00f3mo la escalamos de Privada a P\u00fablica? Teniendo en cuenta que, generalmente, el ancho de banda \u00fatil para conectar un CED privado con un centro de datos donde reside una Nube es del orden de decenas de Mbits en descarga y a\u00fan menos en carga. Ser\u00eda necesario activar r\u00e9plicas que podr\u00edan estar f\u00e1cilmente desincronizadas.<\/p>\n<h3>Necesidades reales del cliente<\/h3>\n<p>El cliente generalmente requiere simplicidad, requiere pasar a la Nube sin ning\u00fan impacto en su normal desarrollo, sin alterar la aplicaci\u00f3n, sin abandonar la l\u00f3gica relacional de su base de datos, porque constituir\u00edan grandes costos, incluso reemplazos de personal ya que no est\u00e1n calificados o no son aptos para reescribir la aplicaci\u00f3n para crecer en la Nube.<\/p>\n<p>VMEngine est\u00e1 lanzando su primera versi\u00f3n basada en un enfoque simple de escalabilidad, para el escalado autom\u00e1tico de toda la aplicaci\u00f3n, incluidos los servidores de bases de datos, y mientras tanto est\u00e1 investigando para que la escalabilidad sea cada vez m\u00e1s automatizada y cada vez m\u00e1s transparente para el cliente que puede volver a desarrollar sin tener que alterar el conocimiento de sus desarrolladores<!--:--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A pesar del borrador de la definici\u00f3n de NIST, National Institute of Standards and Technology, seguimos hablando de Cloud Computing como si fuera la tecnolog\u00eda capaz de hacer de todo. Una de estas caracter\u00edsticas muy mencionadas es la supuesta escalabilidad innata de la tecnolog\u00eda, as\u00ed que comencemos primero con una comprensi\u00f3n adecuada de la escalabilidad: [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":38444,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[96],"tags":[1127,1128,1129,1130,1131,145,1132,1133,146,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,149,783,142,1145,1146,1147,1148,1149,237,785,786,789,1150,792,244],"class_list":["post-38442","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sin-categorizar","tag-alta-escalabilidad","tag-amar","tag-amazona","tag-api-es","tag-arquitecto-de-soluciones","tag-aws-es","tag-carnero","tag-cloudwatch-es","tag-computacion-en-nube","tag-detonante","tag-disco-duro","tag-documentos-de-google","tag-elasticloadbalancing-es","tag-escala-derecha","tag-escalabilidad-es","tag-escalabilidad-de-la-base-de-datos","tag-escalado-automatico","tag-fuerza-de-ventas","tag-gmail-es","tag-herrajes-basicos","tag-historias","tag-iaas-es","tag-informatizacion","tag-inmemorydatabase-es","tag-inmemorydatagrid-es","tag-jeff-bezos-es","tag-memcached-es","tag-motor-de-aplicaciones-de-google","tag-mysql-es","tag-nist-es","tag-nube-hibrida","tag-paas-es","tag-particion","tag-saas-es","tag-tecnico"],"aioseo_notices":[],"jetpack_featured_media_url":"http:\/\/temp_new.vmenginelab.com\/wp-content\/uploads\/2009\/05\/Cloud-Computing-Scalability-True-or-False-1-e1494333561860-2.jpg","amp_enabled":true,"_links":{"self":[{"href":"http:\/\/temp_new.vmenginelab.com\/es\/wp-json\/wp\/v2\/posts\/38442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/temp_new.vmenginelab.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/temp_new.vmenginelab.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/temp_new.vmenginelab.com\/es\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/temp_new.vmenginelab.com\/es\/wp-json\/wp\/v2\/comments?post=38442"}],"version-history":[{"count":1,"href":"http:\/\/temp_new.vmenginelab.com\/es\/wp-json\/wp\/v2\/posts\/38442\/revisions"}],"predecessor-version":[{"id":40858,"href":"http:\/\/temp_new.vmenginelab.com\/es\/wp-json\/wp\/v2\/posts\/38442\/revisions\/40858"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/temp_new.vmenginelab.com\/es\/wp-json\/wp\/v2\/media\/38444"}],"wp:attachment":[{"href":"http:\/\/temp_new.vmenginelab.com\/es\/wp-json\/wp\/v2\/media?parent=38442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/temp_new.vmenginelab.com\/es\/wp-json\/wp\/v2\/categories?post=38442"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/temp_new.vmenginelab.com\/es\/wp-json\/wp\/v2\/tags?post=38442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}